ゲーム開発者向けサービス「Amazon GameLift」の基礎知識
Amazon GameLift とは
Amazon GameLift (以下 GameLift) は セッションベースのマルチプレイヤーゲームサーバーのデプロイ、運用、スケーリング のためのマネージドサービスです。
プレイヤーの人数に応じてスケールするようなゲームサーバーを簡単にデプロイすることができます。また、リアルタイムなレポートを元に、運用上の課題を簡単に見つけることができます。
GameLift はリリースされたばかりのサービスですので、どういうことができるのか分からない方も多いと思います。そこでこちらで公開されている情報を元に、概要を要約しました。
機能
GameLift を使うと、AWS の良さを最大限に活かしたゲームサーバーを構築することができます。主に次のような機能を利用することができます。
- Amazon Lumberyard との連係
- ゲームサーバーのデプロイとスケーリング
- バージョン管理(Developemt, Testing, Production)
- ハイパフォーマンスのEC2インスタンスの選択
- サーバーのメトリクス及びゲームセッションログのモニタリング
- ゲームの管理が簡単に使える Web コンソール
コンセプト
GameLift は、次のコンセプトを元に作られています。
ビルド
自分が作ったゲームのサーバーを構築するには、すべてのコンポーネントをパッケージ化した状態で、GameLift にアップロードするだけです。
フリート
EC2 インスタンスにデプロイした1バージョンのことを「フリート」と呼びます。この Fleet 単位で、ゲームサーバーのバージョンを管理することができます。
なお、EC2 インスタンスのインスタンスタイプは自由に選択することが可能です。OS は、現在 Windows Server 2008 R2 のみサポートしています。
ゲームセッション
1人以上のプレイヤーが接続できる、単一のバックエンドを「ゲームセッション」という単位で扱います。
プレイヤーセッション
各プレイヤーがバックエンドに接続するセッションを「プレイヤーセッション」と呼びます。プレイヤーセッションはプレイヤーがゲームセッションに接続したときに自動的に作成され、ゲームから離脱したときに終了します。
エイリアス
フリートへのマッピングまたはプレイヤーへのメッセージの通知を行うために「エイリアス」を作ることができます。
ワークフロー
GameLift のゲームサーバーは、次の7ステップで構築することができます。
- ゲームサーバーのビルドをパッケージする
- ビルドを GameLift にアップロードする
- Fleet を作成する
- ゲームクライアントを準備し、実行する
- ゲームセッションを作成する
- 各プレイヤーがゲームセッションに接続する
- テレメトリーをモニタリングする
コンポーネント
GameLift でゲームサーバーを構築するために、次のコンポーネントが提供されています。
Amazon GameLift サービス
ゲームサーバーのデプロイ、運用、スケールを行います。プレイヤーはデプロイした EC2 インスタンスに接続します。
GameLift SDK
GameLift サービスに通信するために必要なライブラリです。Lumberyard に統合されています。
GridMate Framework
「GridMate Framework」は Lumberyard の通信のサブシステムです。効率的に帯域を利用し、かつローレイテンシな通信を行うように設計されています。
GameLift CLI
コマンドラインで GameLift の API を呼び出すためのツールです。
GameLift Web コンソール
マネジメントコンソールから、フリート、ゲームセッション、プレイヤーセッションのモニタリングと監視を行うことができます。
MultiplayerProject
GameLift のサーバーとクライアントの連係のデモがすぐに行える、サンプルプロジェクトが提供されています。
テレメトリ
GameLift では、アクティブなゲームセッション数、ユーザー数、CPUやメモリの消費量などを監視することができます。これらは AWS Management Console からアクセス可能です。
以下の情報を見ることができます。
- アクティブなプレイヤーセッション数
- 利用可能なプレイヤーのセッションのスロット (空き)
- アクティブなゲームセッション数
- CPU 及びメモリの消費量
- ネットワーク利用量 (イン/アウト)
また、ゲームセッションが終了したときにダウンロードが可能な状態でログファイルが作られます。
まとめ
GameLift は単純なデプロイサービスではありません。スケーラビリティや監視についてもかなり配慮されており、無駄な労力をかけることなくゲームサーバーを運用することができそうです。またゲーム開発ツールである Lumberyard と簡単に連係できるようになっているところもポイントですね。